use charts_rs::CandlestickChart;
use pretty_assertions::assert_eq;

#[test]
fn candlestick_chart() {
    let candlestick_chart = CandlestickChart::from_json(
        r###"{
        "margin": {
            "left": 10,
            "top": 5,
            "right": 10
        },
        "y_axis_configs": [
            {
                "axis_min": 2100,
                "axis_max": 2460,
                "axis_formatter": "{t}" 
            }
        ],
        "series_list": [
            {
                "name": "MA5",
                "category": "line",
                "start_index": 5,
                "data": [
                    2352.93,
                    2378.48,
                    2394.81,
                    2409.64,
                    2420.04,
                    2426.66,
                    2429.33,
                    2428.01,
                    2417.97,
                    2410.51,
                    2391.99,
                    2368.35,
                    2349.20,
                    2331.29,
                    2314.49,
                    2322.42,
                    2331.49,
                    2321.01,
                    2327.60,
                    2334.39,
                    2326.13,
                    2317.95,
                    2325.39,
                    2317.45,
                    2300.81,
                    2290.01,
                    2281.96,
                    2267.85,
                    2262.02,
                    2272.7,
                    2283.49,
                    2293.46,
                    2310.80,
                    2318.85,
                    2315.63,
                    2298.04,
                    2279.71,
                    2261.25,
                    2247.26,
                    2232.06,
                    2227.12,
                    2224.95,
                    2223.30,
                    2221.66,
                    2217.96,
                    2212.03,
                    2205.85,
                    2199.38,
                    2194.99,
                    2202.56,
                    2214.61,
                    2212.55,
                    2217.45,
                    2217.79,
                    2204.45
                ]
            },
            {
                "name": "日K",
                "data": [
                    2320.26,
                    2320.26,
                    2287.3,
                    2362.94,
                    2300.0,
                    2291.3,
                    2288.26,
                    2308.38,
                    2295.35,
                    2346.5,
                    2295.35,
                    2346.92,
                    2347.22,
                    2358.98,
                    2337.35,
                    2363.8,
                    2360.75,
                    2382.48,
                    2347.89,
                    2383.76,
                    2383.43,
                    2385.42,
                    2371.23,
                    2391.82,
                    2377.41,
                    2419.02,
                    2369.57,
                    2421.15,
                    2425.92,
                    2428.15,
                    2417.58,
                    2440.38,
                    2411.0,
                    2433.13,
                    2403.3,
                    2437.42,
                    2432.68,
                    2434.48,
                    2427.7,
                    2441.73,
                    2430.69,
                    2418.53,
                    2394.22,
                    2433.89,
                    2416.62,
                    2432.4,
                    2414.4,
                    2443.03,
                    2441.91,
                    2421.56,
                    2415.43,
                    2444.8,
                    2420.26,
                    2382.91,
                    2373.53,
                    2427.07,
                    2383.49,
                    2397.18,
                    2370.61,
                    2397.94,
                    2378.82,
                    2325.95,
                    2309.17,
                    2378.82,
                    2322.94,
                    2314.16,
                    2308.76,
                    2330.88,
                    2320.62,
                    2325.82,
                    2315.01,
                    2338.78,
                    2313.74,
                    2293.34,
                    2289.89,
                    2340.71,
                    2297.77,
                    2313.22,
                    2292.03,
                    2324.63,
                    2322.32,
                    2365.59,
                    2308.92,
                    2366.16,
                    2364.54,
                    2359.51,
                    2330.86,
                    2369.65,
                    2332.08,
                    2273.4,
                    2259.25,
                    2333.54,
                    2274.81,
                    2326.31,
                    2270.1,
                    2328.14,
                    2333.61,
                    2347.18,
                    2321.6,
                    2351.44,
                    2340.44,
                    2324.29,
                    2304.27,
                    2352.02,
                    2326.42,
                    2318.61,
                    2314.59,
                    2333.67,
                    2314.68,
                    2310.59,
                    2296.58,
                    2320.96,
                    2309.16,
                    2286.6,
                    2264.83,
                    2333.29,
                    2282.17,
                    2263.97,
                    2253.25,
                    2286.33,
                    2255.77,
                    2270.28,
                    2253.31,
                    2276.22,
                    2269.31,
                    2278.4,
                    2250.0,
                    2312.08,
                    2267.29,
                    2240.02,
                    2239.21,
                    2276.05,
                    2244.26,
                    2257.43,
                    2232.02,
                    2261.31,
                    2257.74,
                    2317.37,
                    2257.42,
                    2317.86,
                    2318.21,
                    2324.24,
                    2311.6,
                    2330.81,
                    2321.4,
                    2328.28,
                    2314.97,
                    2332.0,
                    2334.74,
                    2326.72,
                    2319.91,
                    2344.89,
                    2318.58,
                    2297.67,
                    2281.12,
                    2319.99,
                    2299.38,
                    2301.26,
                    2289.0,
                    2323.48,
                    2273.55,
                    2236.3,
                    2232.91,
                    2273.55,
                    2238.49,
                    2236.62,
                    2228.81,
                    2246.87,
                    2229.46,
                    2234.4,
                    2227.31,
                    2243.95,
                    2234.9,
                    2227.74,
                    2220.44,
                    2253.42,
                    2232.69,
                    2225.29,
                    2217.25,
                    2241.34,
                    2196.24,
                    2211.59,
                    2180.67,
                    2212.59,
                    2215.47,
                    2225.77,
                    2215.47,
                    2234.73,
                    2224.93,
                    2226.13,
                    2212.56,
                    2233.04,
                    2236.98,
                    2219.55,
                    2217.26,
                    2242.48,
                    2218.09,
                    2206.78,
                    2204.44,
                    2226.26,
                    2199.91,
                    2181.94,
                    2177.39,
                    2204.99,
                    2169.63,
                    2194.85,
                    2165.78,
                    2196.43,
                    2195.03,
                    2193.8,
                    2178.47,
                    2197.51,
                    2181.82,
                    2197.6,
                    2175.44,
                    2206.03,
                    2201.12,
                    2244.64,
                    2200.58,
                    2250.11,
                    2236.4,
                    2242.17,
                    2232.26,
                    2245.12,
                    2242.62,
                    2184.54,
                    2182.81,
                    2242.62,
                    2187.35,
                    2218.32,
                    2184.11,
                    2226.12,
                    2213.19,
                    2199.31,
                    2191.85,
                    2224.63,
                    2203.89,
                    2177.91,
                    2173.86,
                    2210.58
                ]
            }
        ],
        "x_axis_data": [
            "2013/1/24",
            "2013/1/25",
            "2013/1/28",
            "2013/1/29",
            "2013/1/30",
            "2013/1/31",
            "2013/2/1",
            "2013/2/4",
            "2013/2/5",
            "2013/2/6",
            "2013/2/7",
            "2013/2/8",
            "2013/2/18",
            "2013/2/19",
            "2013/2/20",
            "2013/2/21",
            "2013/2/22",
            "2013/2/25",
            "2013/2/26",
            "2013/2/27",
            "2013/2/28",
            "2013/3/1",
            "2013/3/4",
            "2013/3/5",
            "2013/3/6",
            "2013/3/7",
            "2013/3/8",
            "2013/3/11",
            "2013/3/12",
            "2013/3/13",
            "2013/3/14",
            "2013/3/15",
            "2013/3/18",
            "2013/3/18",
            "2013/3/20",
            "2013/3/21",
            "2013/3/22",
            "2013/3/25",
            "2013/3/26",
            "2013/3/27",
            "2013/3/28",
            "2013/3/29",
            "2013/4/1",
            "2013/4/2",
            "2013/4/3",
            "2013/4/8",
            "2013/4/9",
            "2013/4/10",
            "2013/4/11",
            "2013/4/12",
            "2013/4/15",
            "2013/4/16",
            "2013/4/17",
            "2013/4/18",
            "2013/4/19",
            "2013/4/22",
            "2013/4/23",
            "2013/4/24",
            "2013/4/25",
            "2013/4/26"
        ],
        "x_axis_margin": {
            "left": 1,
            "top": 0,
            "right": 0,
            "bottom": 0
        }
    }"###,
    )
    .unwrap();
    assert_eq!(
        include_str!("../asset/candlestick_chart/basic_json.svg"),
        candlestick_chart.svg().unwrap()
    );
}
